import API from '@/services/api'
import {request, METHOD} from '@/utils/request'

/**
 * 查询组织机构树
 * @param params 请求参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function queryOrganizationTree(params) {
  return request(API.ROLE_QUERY_ORGANIZATION_TREE, METHOD.POST, params)
}

/**
 * 查询菜单权限树
 * @param params 请求参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function queryPermissionTree(params) {
  return request(API.ROLE_QUERY_PERMISSION_TREE, METHOD.POST, params)
}

/**
 * 查询数据权限树
 * @param params 请求参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function queryDataPermissionTree(params) {
  return request(API.ROLE_QUERY_DATA_PERMISSION_TREE, METHOD.POST, params)
}

/**
 * 查询角色列表
 * @param params 请求参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function queryList(params) {
  return request(API.ROLE_QUERY_LIST, METHOD.POST, params)
}

/**
 * 查询角色
 * @param params 请求参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function query(params) {
  return request(API.ROLE_QUERY, METHOD.POST, params)
}

/**
 * 新增角色
 * @param params 请求参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function add(params) {
  return request(API.ROLE_ADD, METHOD.POST, params)
}

/**
 * 编辑角色
 * @param params 请求参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function edit(params) {
  return request(API.ROLE_EDIT, METHOD.POST, params)
}

/**
 * 删除角色
 * @param params 请求参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function del(params) {
  return request(API.ROLE_DELETE, METHOD.POST, params)
}

/**
 * 查询角色权限
 * @param params 请求参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function queryRolePermission(params) {
  return request(API.ROLE_QUERY_PERMISSION, METHOD.POST, params)
}

/**
 * 设置权限
 * @param params 请求参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function setPermission(params) {
  return request(API.ROLE_SET_PERMISSION, METHOD.POST, params)
}

export default {
  queryOrganizationTree,
  queryPermissionTree,
  queryDataPermissionTree,
  queryList,
  query,
  add,
  edit,
  del,
  queryRolePermission,
  setPermission
}
